package net.wofly.cashier.table.service;

import java.util.List;

import net.wofly.cashier.table.domain.Table;
import net.wofly.common.util.ReturnBean;

public interface ITableService {

	/**
	 * 增加或修改
	 * 
	 * @param entity
	 * @return
	 */
	public Table save(Table entity);

	/**
	 * 删除
	 * 
	 * @param entity
	 * @return
	 */
	public void delete(Table entity);

	/**
	 * 根据主键ID删除
	 * 
	 * @param key
	 * @return
	 */
	public void delete(String key);

	/**
	 * 根据主键查询
	 * 
	 * @param key
	 * @return
	 */
	public Table findOne(String key);
	
	public List<Table> save(List<Table> entityList) ;

	/**
	 * 添加餐桌
	 * <ul>
	 * 	<li>判断是否有同名餐桌</li>
	 * 	<li></li>
	 * </ul>
	 *
	 * @param table
	 */
	public ReturnBean<Table> addTable(Table table);

	/**
	 * 将状态置为无效
	 *
	 * @param tableID
	 */
	public ReturnBean<String> delTable(String tableID);

	/**
	 * 获取所有餐桌不分页
	 * <ul>
	 * 	<li>status=1 获取所有有效餐桌</li>
	 * 	<li>status=0 获取所有无效餐桌</li>
	 * 	<li>status=-1 获取所有餐桌</li>
	 * 	<li></li>
	 * </ul>
	 *
	 * @param status
	 */
	public ReturnBean<List<Table>> getAllTable(Integer status);

	/**
	 * 更新餐桌
	 * <ul>
	 * 	<li>判断是否有同名餐桌</li>
	 * 	<li></li>
	 * </ul>
	 *
	 * @param table
	 */
	public ReturnBean<Table> updateTable(Table table);

	/**
	 * 更新餐桌状态
	 * <ul>
	 * 	<li>判断餐桌状态是否为要修改的状态的上个状态，是则可以修改，否则不可以修改</li>
	 * 	<li></li>
	 * </ul>
	 *
	 * @param tableID
	 * @param tableStatus
	 */
	public ReturnBean<Table> updateTableStatus(String tableID, Integer tableStatus);

}
